package com.punch.common.vo.course.classes;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * CoursesForAppVO-家长端可选课程列表 展示vo
 *
 * @author xiaol
 * @version 1.0.0
 * @since 2020/7/21
 */
@Data
public class AppCourseClassVO implements Serializable {

    @ApiModelProperty(name = "courseClassId", notes = "班级id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long courseClassId;

    @ApiModelProperty(name = "courseId", notes = "课程id")
    @JsonIgnore
    private Long courseId;

    @ApiModelProperty(name = "courseImg", notes = "课程封面")
    private String courseImg;

    /**
     * 班级名称
     */
    @ApiModelProperty(name = "courseClassName", notes = "班级名称")
    private String courseClassName;


    @ApiModelProperty(name = "courseWeek", notes = "上课周期——星期几")
    @JsonIgnore
    private String courseWeek;

    @ApiModelProperty(name = "classTime", notes = "上课时间——几点到几点")
    @JsonIgnore
    private String classTime;

    @ApiModelProperty(name = "courseTime", notes = "上课时间")
    private String courseTime;


    @ApiModelProperty(name = "classRoomName", notes = "教室名称")
    @JsonIgnore
    private String classRoomName;

    @ApiModelProperty(name = "schoolName", notes = "学校名称")
    @JsonIgnore
    private String schoolName;

    @ApiModelProperty(name = "address", notes = "上课地址")
    private String address;

    /**
     * 课程单价
     */
    @ApiModelProperty(name = "courseHourPrice", notes = "课程单价,单位分(订单提交时候需要带)")
    private Integer courseHourPrice;

    /**
     * 课时数
     */
    @ApiModelProperty(name = "courseHourCount", notes = "课时数")
    private Integer courseHourCount;
    /**
     * 课程总价
     */
    @ApiModelProperty(name = "courseHourAmount", notes = "课程总价")
    private Integer courseHourAmount;

    /**
     * 课程介绍
     */
    @ApiModelProperty(name = "courseIntroduce", notes = "课程介绍")
    private String courseIntroduce;

    @ApiModelProperty(name = "goodsFlag", notes = "是否包含教材/教具：勾选框，默认否  0否  1是")
    private Integer goodsFlag;

    /**
     * 教材教具
     */
    @ApiModelProperty(name = "material", notes = "教材教具")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private AppGoodsVO material;


    @ApiModelProperty(name = "buyFlag", notes = "是否必须购买:<br/>0-不必购买<br/> 1-必须购买<br/>只有material不为空的时候有意义")
    private Integer buyFlag;

    /**
     * 课程介绍
     */
    @ApiModelProperty(name = "introduceImagList", notes = "课程介绍图片")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private List<String> introduceImagList;


    @ApiModelProperty(name = "classStatus", notes = "状态，用于按钮显示 </br>" +
            "0-待报名(显示待报名,不能点击,置灰)</br> " +
            "1-立即报名(显示立即报名,可以点击)</br> " +
            "2-已报名(显示已报名,不能点击,置灰)</br>  " +
            "3-已报满(显示已报满,不能点击,置灰) ")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Integer classStatus;


    /**
     * 最多上课人数
     */
    @JsonIgnore
    private Integer stuNoMax;

    /**
     * 报名人数
     */
    @JsonIgnore
    private Integer signUpNumber;

}
